Methods and apparatus for suspension set up

ABSTRACT

A method and apparatus are disclosed that assist a user in performing proper setup of a vehicle suspension. A user may utilize a device equipped with an image sensor to assist the user in proper setup of a vehicle suspension. The device executes an application that prompts the user for input and instructs the user to perform a number of steps for adjusting the suspension components. In one embodiment, the application does not communicate with sensors on the vehicle. In another embodiment, the application may communicate with various sensors located on the vehicle to provide feedback to the device during the setup routine. In one embodiment, the device may analyze a digital image of a suspension component to provide feedback about a physical characteristic of the component.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of and claims priority toand benefit of co-pending U.S. patent application Ser. No. 13/612,679 ,filed Sep. 12, 2012. The application Ser. No. 13/612,679 claims benefitof U.S. Provisional Patent Application Ser. No. 61/533,712 , filed Sep.12, 2011, and U.S. Provisional Patent Application Ser. No. 61/624,895 ,filed Apr. 16, 2012. The application Ser. No. 13/612,679 is related toU.S. patent application Ser. No. 13/022,346, which claims benefit ofU.S. Provisional Patent Application Ser. No. 61/302,070, filed Feb. 5,2010, and U.S. Provisional Patent Application 61/411,901, filed Nov. 9,2010, and U.S. patent application Ser. No. 12/727,915, filed Mar. 19,2010, which claims benefit of U.S. Provisional Patent Application Ser.No. 61/161,552, filed Mar. 19, 2009, and U.S. Provisional PatentApplication Ser. No. 61/161,620, filed Mar. 19, 2009, and U.S. patentapplication Ser. No. 12/773,671, filed May 4, 2010, which claims benefitof U.S. Provisional Patent Application Ser. No. 61/175,422, filed May 4,2009. Each of the aforementioned patent applications is hereinincorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates generally to vehicle suspensions and, morespecifically, to a system for adjusting operational characteristics of avehicle suspension system.

2. Description of the Related Art

Vehicle suspension systems typically include a spring component orcomponents and a damping component or components. Often, mechanicalsprings, like helical springs, are used with some type of viscousfluid-based damping mechanism, the spring and damper being mountedfunctionally in parallel. In some instances a spring may comprisepressurized gas and features of the damper or spring areuser-adjustable, such as by adjusting the air pressure in a gas spring.A damper may be constructed by placing a damping piston in afluid-filled cylinder (e.g., liquid such as oil). As the damping pistonis moved in the cylinder, fluid is compressed and passes from one sideof the piston to the other side. Often, the piston includes ventsthere-through which may be covered by shim stacks to provide fordifferent operational characteristics in compression or extension.

Despite efforts to educate product managers, retailers, and endconsumers on the importance of proper initial vehicle suspension set up,it is evident at event support and trail side encounters that manyvehicles such as mountain bikes and motorcycles are ridden with improperinitial suspension settings. An important initial setting is suspension“sag,” which is the measured distance a shock absorber compresses whilethe rider, preferably wearing intended riding gear, is seated on, e.g.,a bicycle, motorcycle, or four-wheeled vehicle in a riding positioncompared to a fully extended suspension position. Suspension sag alsoapplies to all-terrain vehicles (ATVs), trucks, and other vehiclesequipped with a suspension. Getting the sag setting correct allows thewheels or vehicle suspension to react to negative terrain features(i.e., dips requiring suspension extension) without the entire vehicle“falling” into such terrain features. Often any attention that is paidto the initial sag setting is focused on the rear suspension, especiallyin motorcycle applications, but making sure that both the front and rearsag settings are correct is equally important.

Another important initial setting is the rebound damping setting for therear and front vehicle suspensions. Rebound damping dissipates storedsystem spring energy after a suspension compression event and results ina controlled rate of return of the suspension to a more extendedcondition. Preventing the suspension from rebounding too quickly is animportant aspect of the quality of vehicle suspension setup. In the caseof rear suspension, an improper amount of rebound damping can result inthe rear of the vehicle “kicking” off the ground and pitching the riderforward after encountering a bump or sharp compression obstacle, alsoknown as “bucking.” In the case of front suspension, an improper amountof rebound damping can cause impact to the rider's hands as the frontsuspension kicks back directly toward the rider. Conversely, preventingthe suspension from rebounding too slowly is also an important aspect ofthe quality of vehicle suspension setup. An improper amount of rebounddamping, where the amount of damping is too high, can result in thesuspension not returning quickly enough to respond to the next bump in aseries of bumps, ultimately causing the suspension to “ratchet” downinto a compressed state. Such a “ratcheting” sequence is commonlyreferred to as suspension packing. Packing can result in the suspensionbeing overly stiff due to retained compression through the middle to theend of a series of bumps, causing the back of the vehicle to kick offthe ground and pitch the rider forward (in the case of the rearsuspension) and causing the suspension to get overly stiff and steeringgeometry to get steep and unstable (in the case of the frontsuspension). Compression damping settings are similarly important.

As the foregoing illustrates, what is needed in the art are improvedtechniques for assisting the operator of a vehicle to prepare and adjustone or more operating parameters of the vehicle for an optimum ridingexperience.

SUMMARY OF THE INVENTION

One embodiment of the present disclosure sets forth a computer-readablestorage medium including instructions that, when executed by aprocessor, cause the processor to perform a plurality of steps. Thesteps include receiving a weight value that indicates a load to becarried by the vehicle, receiving a digital image of the suspensioncomponent, and cropping the digital image to generate a portion of thedigital image, where the portion of the digital image comprises aplurality of pixels associated with a shaft of the suspension componentand an o-ring positioned to indicate a level of sag of the suspensioncomponent under the load. The steps further include analyzing, via anobject recognition algorithm executed by a processor, the portion of thedigital image to determine a location of the o-ring on the shaft of thesuspension component, and determining an adjustment to the suspensioncomponent based on the location of the o-ring.

Another embodiment of the present disclosure sets forth a system foradjusting a suspension component on a vehicle. The system includes animage sensor, a display, a memory storing an application, and aprocessor coupled to the memory, the image sensor, and the display. Theprocessor is configured to receive a weight value that indicates a loadto be carried by the vehicle, receive a digital image of the suspensioncomponent, and crop the digital image to generate a portion of thedigital image, where the portion of the digital image comprises aplurality of pixels associated with a shaft of the suspension componentand an o-ring positioned to indicate a level of sag of the suspensioncomponent under the load. The processor is further configured toanalyze, via an object recognition algorithm, the portion of the digitalimage to determine a location of the o-ring on the shaft of thesuspension component, and determine an adjustment to the suspensioncomponent based on the location of the o-ring.

Yet another embodiment of the present disclosure sets forth a system foradjusting a suspension component on a vehicle. The system includes adisplay, a memory storing an application, and a processor coupled to thememory, and the display. The processor is configured to receive a weightvalue that indicates a load to be carried by the vehicle, determine atarget pressure for an air spring of the suspension component based onthe weight value, measure a loaded position of the suspension component,and determine an adjustment to the suspension component based on theloaded position.

In other embodiments, there is provided a vehicle damper comprising apiston and shaft telescopically mounted within a cylinder, wherein aportion of the shaft is visible when the damper is mounted on a vehicleand the vehicle is not in use, the vehicle damper further comprising acode for identifying the vehicle damper within an electronic database ofvehicle dampers, and a member mounted on the visible portion of theshaft. The member adapted to be movable along the shaft by the cylinderduring a compression of the damper, but which member retains a positionon the shaft indicating the furthest movement of the cylinder duringcompression of the damper.

In yet other embodiments, there is provided a system that includes ashock absorber having a first member and a second member mounted movablyrelative thereto such that the shock absorber is positioned at orbetween an extended position and a compressed position. The systemfurther includes a sensor configured to measure the position of theshock absorber, a memory for storing a plurality of sensor readings(e.g., digitally), a processor executing a program for calculating aforce applied to the shock absorber based on a difference between afirst position and a second position and a spring setting (i.e., targetpressure) such that the force applied to the shock absorber causes theshock absorber to be compressed to a third position (i.e., proper sagposition), and a user interface for displaying the spring setting to auser. The program calculates a rebound damping setting (and/or acompression damping setting) for the shock absorber based on the springsetting.

One advantage of the disclosed technique is that the device may use thephysical characteristics of the suspension component and an intendedload entered by the rider to automatically calculate target values forvarious settings of the suspension component that should result in aproperly setup vehicle suspension. The device may also receive feedback,such as using images captured by the device, to determine whether thesuspension should be adjusted from the target values in order to providethe correct result. Proper setup of a vehicle suspension helps create amore enjoyable experience for the rider.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features can be understoodin detail, a more particular description, briefly summarized above, maybe had by reference to certain example embodiments, some of which areillustrated in the appended drawings. It is to be noted, however, thatthe appended drawings illustrate only typical embodiments and aretherefore not to be considered limiting the scope of the claims, whichmay admit to other equally effective embodiments.

FIG. 1 shows a vehicle used to perform a setup routine, according to oneexample embodiment;

FIGS. 2A and 2B show a suspension component assembly, according to oneexample embodiment;

FIG. 3 illustrates a suspension setup system that assists a user inproper setup of the vehicle suspension, according to one exampleembodiment;

FIGS. 4-22 set forth a graphical user interface displayed by thesuspension setup system, according to one example embodiment;

FIGS. 23A-23F illustrate a technique for aligning a device with asuspension component, according to one example embodiment;

FIGS. 24A and 24B illustrate an object detection algorithm fordetermining the location of o-ring relative to the suspension component,according to one embodiment;

FIGS. 25A and 25B set forth flow diagrams of method steps for assistinga user in performing a setup routine, according to one embodiment; and

FIGS. 26A and 26B set forth flow diagrams of method steps for an objectdetection algorithm implemented by program, according to one embodiment.

For clarity, identical reference numbers have been used, whereapplicable, to designate identical elements that are common betweenfigures. It is contemplated that features of one example embodiment maybe incorporated in other example embodiments without further recitation.

DETAILED DESCRIPTION

Integrated damper/spring vehicle shock absorbers often include a damperbody surrounded by a mechanical spring or constructed in conjunctionwith an air spring. The damper often consists of a piston and shafttelescopically mounted in a fluid filled cylinder. A mechanical springmay be a helically wound spring that surrounds the damper body. Variousintegrated shock absorber configurations are described in U.S. Pat. Nos.6,311,962; 6,135,434; 5,044,614; 5,803,443; 5,553,836; and 7,293,764;each of which is herein incorporated by reference in its entirety.

Some shock absorbers utilize gas as a spring medium in place of, or inaddition to, mechanical springs. Gas spring type shock absorbers, suchas gas spring shock absorbers having integral dampers, are described inU.S. Pat. Nos. 6,135,434; 6,360,857; and 6,311,962, each of which isherein incorporated by reference in its entirety. U.S. Pat. No.6,360,857, which is incorporated herein by reference in its entirety,shows a shock absorber having selectively adjustable dampingcharacteristics. U.S. Pat. No. 7,163,222, which is incorporated hereinby reference in its entirety, describes a gas sprung front shockabsorber for a bicycle (i.e., a bicycle fork) having a selective “lockout” and adjustable “blow off” function.

The spring mechanism (gas or mechanical) of some shock absorbers isadjustable so that it can be preset to varying initial states ofcompression. In some instances the shock spring may comprise differentstages having varying spring rates, thereby giving the overall shockabsorber a compound spring rate varying through the stroke length. Inthat way, the shock absorber can be adjusted to accommodate heavier orlighter carried weight, or greater or lesser anticipated impact loads.In vehicle applications, including motorcycle and bicycle applicationsand particularly off-road applications, shock absorbers should bepre-adjusted to account for varying terrain and anticipated speeds andjumps. Shocks may also be adjusted according to certain riderpreferences (e.g., soft to firm).

For example, a type of integrated damper/spring shock absorber having agas spring is shown in FIG. 28 of U.S. Pat. No. 7,374,028 (hereinafter“'028 patent”), which is incorporated by reference herein in itsentirety. The shock absorber of FIG. 28 also includes an “adjustableintensifier assembly 510.” The intensifier or reservoir accepts dampingfluid from chamber 170 as the fluid is displaced from that chamber bythe incursion of rod 620 into chamber 170 during a compression stroke ofthe shock. The intensifier valve assembly regulates flow of dampingfluid into and out of the reservoir, and an embodiment of the valveassembly is shown in FIG. 17 of the '028 patent.

Although described herein with respect to a bicycle suspension system,the embodiments herein may be used with any type of suspended vehicle,as well as other types of suspension or damping systems.

Referring to FIG. 1 herein, a vehicle, such as a bicycle, generallyidentified by reference numeral 100, comprises a frame 40 and frontforks 80. In one embodiment, the frame 40 has a suspension systemcomprising a swing arm assembly 10 that, in use, is able to moverelative to the rest of the frame; this movement is permitted by, interalia, a rear shock absorber and/or damping assembly 25. The front forks80 also provide a suspension function via a damping assembly in at leastone fork leg. As such, the bicycle 100 shown in FIG. 1 is a fullsuspension bicycle (such as an ATB or mountain bike), although theembodiments described herein are not limited to use on full suspensionbicycles. In particular, the term “suspension system” is intended toinclude vehicles having either a front suspension or a rear suspension(or both), and other systems wherein motion damping is included (such asfor example vehicle steering dampeners or machine part motiondampeners).

In one embodiment, a sensor 5 may be positioned proximate a rear axle 15of the bicycle 100 for sensing changes in terrain. As shown in FIG. 1,the sensor 5 is mounted on swing arm assembly 10 proximate the rear axle15 of the bicycle 100. In one embodiment, the angular orientation of asensor 5 sensing axis is movable through a range or angle 20 (and isshown in each of two positions of many possible positions), therebyallowing alteration of a force component sensed by the sensor 5 inrelation to a force (vector) input into the rear swing arm 10. It isunderstood that the sensor 5 may be moved or mounted in any suitableconfiguration and allowing for any suitable range of adjustment as maybe desirable. In some embodiments, the sensor 5 may include one, two,three or more sensing axes, which is useful for adjusting thesensitivity of the sensor 5 to various anticipated terrain and bicyclespeed conditions. The bicycle speed affects the vector direction of aforce input to the bicycle wheel for a constant amplitude terraindisparity 55 or “bump/dip.” Varying size bumps and dips also affect thevector input angle to the wheel for constant bicycle speed. The movementof the swing arm 10 is however limited to a mechanically determinedtrajectory. In one embodiment, a second sensor 5 b (also illustrated inFIG. 2A) may be coupled to the rear suspension, such as shock absorberand/or damper assembly 25, for measuring the operational characteristicsof the rear suspension. In another embodiment, a third sensor 5 c may becoupled to the front suspension, such as front forks 80, for measuringthe operational characteristics of the front suspension. The operationalcharacteristics may include at least one of position, velocity,acceleration, stroke, sag, compression, rebound, pressure, andtemperature of the vehicle suspension.

The sensors, such as sensors 5, 5 b, 5 c, and a pedal force sensor (notshown), may be any suitable force or acceleration transducer (e.g.strain gage, wheatstone bridge, accelerometer, hydraulic cylinder,interferometer based, optical, thermal, acoustic or any suitablecombination thereof). The sensors may utilize solid state electronics,electro-mechanical principles, or any other suitable mechanisms formonitoring the operational characteristics. In one embodiment, sensor 5comprises a single-axis, self-powered accelerometer, such as for exampleENDEVCO Model 2229C. The 2229C is a comparatively small device withoverall dimensions of about 15 mm height by 10 mm diameter, and weighsabout 4.9 g. The 2229C power is self-generated and therefore the totalpower requirements for the bicycle 100 are reduced; an importantadvantage, at least for some types of bicycle, where overall weight is aconcern. In another embodiment, sensor 5 comprises the ENDEVCO 12M1A,which is of the surface-mount type. The 12M1A is a single-axisaccelerometer comprising a bimorph sensing element which operates in thebender mode. This accelerometer is particularly small and light,measuring about 4.5 mm by 3.8 mm by 0.85 mm, and weighs about 0.12 g. Inother embodiments, sensor 5 may be a tri-axial accelerometer, such asthe ENDEVCO 67-100, which has overall dimensions of about 23 mm lengthand 15 mm width, and weighs about 14 g. Other sensors known in the artmay be used with the embodiments described herein.

In one embodiment, the sensor 5 may be attached to the swing arm 10directly, to any link thereof, to an intermediate mounting member or toany other portion or portions of the bicycle 100 as may be useful forpurposes disclosed herein. In another embodiment, the sensor 5 may beattached to an un-sprung portion of the bicycle 100, such as for examplethe swing arm 10, and another sensor 35 (such as an accelerometer asdescribed above) may be attached to a sprung portion of the bicycle 100,such as for example the frame 40. Data from each sensor can beregistered relative to a common time datum, and suspension dampingand/or spring effectiveness can be evaluated by comparing the data fromthe sensors on either “side” of the suspension unit. Sensors may beintegrated with the vehicle structure and data processing system asdescribed in U.S. Pat. Nos. 6,863,291; 4,773,671; 4,984,819; 5,390,949;5,105,918; 6,427,812; 6,244,398; 5,027,303 and 6,935,157; each of whichis incorporated herein by reference in its entirety. Sensors and valveactuators (e.g., electric solenoid, linear motor type, or rotary motortype) may be integrated herein utilizing principles outlined inSP-861-Vehicle Dynamics and Electronic Controlled Suspensions SAETechnical Paper Series no. 910661 by Shiozaki et al. for theInternational Congress and Exposition, Detroit, Mich., Feb. 25-Mar. 1,1991, which is incorporated herein by reference in its entirety.Further, sensors and valves, or principles, of patents and otherdocuments incorporated herein by reference, may be integrated intoembodiments hereof, individually or in combination, as disclosed herein.

In one embodiment, the shock absorber 25 is operatively mounted betweenan unsprung portion of the bicycle 100, such as the swing arm 10 andrear axle 15, and a sprung portion of the bicycle 100, such as the frame40. A representative example embodiment of the shock absorber 25 derivesfrom a modification, as disclosed herein, of the shock absorber shown inFIG. 28 of the '028 patent.

Referring to FIG. 2A herein, an intensifier assembly 510 is shown inconjunction with a damper assembly 630, which may be implemented as partof damping assembly 25 in vehicle 100. In one embodiment, the damperassembly 630 is disclosed in FIG. 28 of the '028 patent and includessimilar reference numerals. FIG. 2B shows an embodiment of a valveassembly 511, such as an intensifier valve, for use with the embodimentsdisclosed herein. In one embodiment, the valve assembly 511 of FIG. 2Breplaces, or may be used with, the “adjustable intensifier assembly”510, as shown in FIGS. 16, 17, 28 and elsewhere in the '028 patent. Thevalve assembly 511 is operable in response to electric current and iscapable of being modulated or throttled for selective full opening,closing and intermediate opening or “throttle” positions. The valveassembly 511 comprises a valve portion 110 and an actuator portion 120.The valve portion 110 may include a cylinder 112 with one or morevariable orifices 114 and a member (e.g. piston) 116 that moves withinthe cylinder 112 to control the opening of the orifice(s) 114. The valveassembly 511 is in a closed position when the piston 116 is covering theorifice(s) 114. The valve assembly 511 is in an open position when thepiston 116 moves away from the orifice(s) 114 such that at least aportion of the orifice(s) 114 is opened. In the open position, fluid mayflow into the valve portion 110 and may flow out of the valve portion110. The position of the piston 116 relative to the orifice(s) 114varies the orifice opening and the flow through the valve portion 110.The valve assembly 511 may thus provide an output pressure in responseto an input flow.

The valve portion 110 may also include a spring 118 that applies a forceagainst the piston 116 to bias the piston 116 toward the closedposition. Fluid pressure against the piston 116 may result in a forcethat exceeds the spring force causing the piston 116 to move and openthe orifice(s) 114. The actuator portion 120 may also apply a force tothe piston 116. The actuator portion 120 may advantageously be backdrivable to permit the pressure term to push open the valve, forexample, during the onset of a high shock event. One embodiment of theactuator portion 120 is a voice coil type linear actuator including avoice coil 122, a magnet 124, and a back iron 126. The back iron 126 iscoupled to the piston 116 such that linear movement of the back iron 126causes linear movement of the piston 116.

The actuator portion 120 may be controlled using a command such as avoltage command, for example, provided by drive electronics. A voltagecommand or signal to the actuator portion 120 causes current to flowthrough the coil 122, creating a magnetic field that applies a force tothe magnet 124 and back iron 126. Different voltage commands may thuscorrespond to different amounts of force applied to the piston 116 inthe valve assembly 511. In one embodiment, the signals and actuator areconfigured to move the valve completely between a full open (“unlocked”)and a full closed position (“locked”) thereby allowing the damper tomove or substantially locking it; i.e., adjusting the damping rate ofthe damping assembly 630 between minimum and maximum respectively.

Although one exemplary valve 110 is shown, those skilled in the art willrecognize that other types of valves may be used. Although the exemplaryactuator 120 is a voice coil type linear actuator, those skilled in theart will recognize that other types of actuator technologies may beused. For example, the sensors, switches, controllers, actuators andother operative elements hereof may comprise optical circuitry and assuch the power source may comprises an optical (or otherelectromagnetic) generator such as a “LASER” and wiring and circuitsused herein may comprises fiber optic and optic circuitry includingBragg grating technology and other suitable “electrical equivalents.”The elements hereof may be operable in whole or in part based on sonicwave or microwave transmission and suitable waveguide technology may beemployed. An operation of an intensifier valve that may be used with theembodiments described herein is disclosed in U.S. Pat. No. 7,299,112;which is incorporated herein by reference in its entirety.

It should be noted that voice coil 122 and magnet 124 areinterchangeable such that the voice coil may be either 122 or 124 andthe magnet may be the other of 122 and 124, respectively. The voice coil122 or 124 responds to input current from the power circuit (e.g.position control circuit or other suitable electrical input as describedherein) and, therefore, input wiring is desirable. The input wiring andterminals for the 122 version of the voice coil is shown at 150. Theinput wiring and terminals for the 124 version of the voice coil isshown at 151 and includes windings 152 to accommodate extension andcontraction of the throughput wires 152 during operation of the valveassembly 511.

The valve assembly 511 is shown in a closed or downward 156, position.As such, piston 116 fully obstructs orifices 114 thereby preventingfluid from flowing from damper assembly 630, through channel 636, intoupper chamber 153, through orifice 114, through valve outlet 157 andinto floating piston compensator chamber 154. When current of anappropriate magnitude is applied to the voice coil 122 or 124, themagnet electromagnet combination of 122 and 124 causes the back iron126, and correspondingly the valve piston 116, to move upward 155 in anamount proportional to the voice coil input. Such upward 155 movement isagainst spring 118, which biases the valve piston 116 downward 156 (i.e.toward closed) and, therefore, when the voice coil input balances withthe force of spring 118, movement of the piston 116 will stop and thevalve assembly 511 will be correspondingly throttled.

In operation, the sensor 5 (and/or sensors 5 b, 5 c, 35) puts out avoltage corresponding to an input force. The outputs from sensors 5, 5b, 5 c, 35 may be reconciled in a controller or processor 65 (describedin greater detail below) that implements an algorithm for weightingtheir respective inputs and generating a resulting singular command orsignal based on a predetermined logic. In one embodiment, the sensor 5senses an input force along the prescribed range or axis 20. A bump inthe terrain 45 typically exerts a force on a tire/wheel 60 of thebicycle 100. The angle of the resolved force relative to the tire/wheel60 is typically normal (substantially) to the tire/wheel 60 at the pointof impact. That force then imparts a component of the impact to the axle15 as dictated by the trajectory of the swing arm linkage 10. Thatcomponent can be sensed by the sensor 5 at a magnitude corresponding tothe orientation of the sensor range or angle 20. The sensor axis 20orientation can be adjusted to make the sensor 5 more or less sensitive(by imparting more or less of the impact to the sensor range or axis 20)to bumps and dips in the terrain 45.

It is envisaged that there are various ways the remote lock/unlockfunction of the rear shock absorber 25 and/or front shock absorber 80may be provided on the bicycle 100. In one embodiment, remotelock/unlock may be entirely automatically controlled by a controller 65in response to the input from the sensors 5, 5 b, 5 c and/or 35 when thebicycle 100 is in use. Optionally, the user may be able to overrideand/or adjust this automatic control using a device 50. In oneembodiment, the remote lock/unlock of the rear shock absorber 25 and/orfront shock absorber in fork 80 may be entirely controlled at the user'sdiscretion using the device 50; in such an embodiment, the sensors 5, 5b, 5 c and/or 35 need not be provided on the bicycle 100 and the userlocks and unlocks the suspension system according to his or her ownpreferences at the time.

In one embodiment, device 50 comprises a digital user interface deviceprovided with buttons and/or a touch screen that enables the user toadjust the damper assembly 630 at will. The device 50 may comprise asuitable GPS (global positioning system) unit, bicycle computer, heartrate monitor, smart phone, personal computer, or cloud-connectedcomputer, and may further comprise connectivity to a network such as theInternet. The device 50 may send and receive data via cell phone bands,satellite bands, or other suitable electromagnetic frequencies toconnect with other computer networks for the sending and or receiving ofdata, wherein the data may be received by and transformed by an outsidecomputing machine and transmitted to the device 50 in an altered form orin a new form corresponding to the result of the outside machinetransformation. The functionality of the device 50 may be incorporatedinto performance recording devices and/or digital user interfaces suchas, but not limited to, the Garmin.RTM. EDGE series of devices and smartphones such as the Apple.RTM. iPhone or Motorola.RTM. phones includingthe Android.RTM. Operating System.

Some or all components of embodiments described herein, includingsensors, switches, processors, controllers, shock absorbers, intensifierassembly, and/or valve assembly, may be interconnected or connected bywired or wireless communication. The components may be connected to anetwork, such as a wide area network (WAN), local area network (LAN), orthe Internet, and configured to implement communications via Bluetooth,Wi-Fi, ANT (i.e., Garmin low power usage protocol), or any othersuitable power or signal transmitting protocol. In some embodiments, thecomponents should ideally communicate wirelessly with controller 65. Asthe controller 65 receives the input signals from sensors 5 (as well as5 b, 5 c, 35, etc.) the controller 65 responds to those signals byadjusting the damping rate of the damper assembly 630.

In one embodiment, the controller 65 takes a derivative (i.e.,differentiation) of the suspension compression and/or extensionacceleration to determine the rate of change of acceleration forforecasting and implementing adjustment of the valve assembly 511 or fordetermining a data rate or sample density required to adequatelyrepresent current suspension behavior. For example, if a bump 55 isencountered, followed immediately by a dip, it may be desirable to havethe rebound of the tire into the dip occur very rapidly. If the valveassembly 511 were opened to an intermediate state as determined by thecontroller 65 and the controller determines that a bump has beenfollowed by a large magnitude reversal of the derivative of theacceleration (i.e., indicated by the sensor 5), then the controller 65may direct the power source to fully open the valve assembly 511 toallow the maximum rebound velocity. It is noted that embodiments hereinof shock absorber/damping assembly 630 and related systems are equallyapplicable to vehicle front forks. Further, it is contemplated that thevehicle may include both shock absorbers and front forks, both of whichhaving some or all of the features disclosed herein.

FIG. 3 illustrates a suspension setup system 300 that assists a user inproper setup of the vehicle suspension, according to one exampleembodiment. The system 300 enables a user to set up a vehicle 100 (suchas vehicle 100 described above) equipped with one or more sensors (suchas sensors 5, 5 b, 5 c, 35 described above), a processor or controller65, and a device 50. An operator or user, such as a rider of the vehicle100, may use the system 300 according to the embodiments describedherein. In one embodiment, the vehicle 100, such as a bicycle, isequipped with the device 50 comprising at least a memory 320 storing aprogram 325 that implements an algorithm for setting up the suspensionof the vehicle 100, and a processor 310 for executing the program 325.In one embodiment, the device 50 includes a communication interface 330to communicate with controller 65. Communication interface 330 may be awireless network interface, a near-field communication interface, or anyother technically feasible communication interface. Device 50 may alsoinclude a display 350 used to display a graphical user interface to auser and an image sensor 380 that enables live video or images to becaptured by the device 50 and stored in memory 320. In one embodiment,display 350 comprises a touch-sensitive LCD screen that may be used bothfor display of the user interface and for receiving input from the user.

In one embodiment, the device 50 captures data 335 from the sensors inthe memory 320 for processing by program 325. The data 335 may includesuspension component relative position data (e.g., inches of compressionor full extension or full compression or any suitable combination ofsuch data) and/or other operational characteristics/features of thevehicle 100 that are measured by the sensors. The raw sensor data may becommunicated to the controller 65 via wired and/or wirelesscommunication, and the controller 65 may process the raw sensor data andcommunicate the processed data 335 to device 50 via, for example, anindustry standard low power wireless protocol. The program 325 instructsthe user on what adjustments to make to improve the vehicle suspensionsetup and/or to describe the current performance of the vehiclesuspension system. In one embodiment, the user may use the device 50 toadjust one or more components of the vehicle 100, automatically,manually and/or remotely, wired and/or wirelessly, directly, manuallyand/or indirectly (such as via the controller 65) during and/or afteroperation of the vehicle 100.

In one embodiment, the sensors are mounted to vehicle suspensioncomponents, such as the front forks 80 of bicycle 100 illustrated inFIG. 1. The sensor may be coupled to the vehicle 100 and may be operableto measure an operational characteristic of a vehicle component. In oneembodiment, the sensors may be directly coupled to the vehiclecomponents for direct measurement of each component's operationalcharacteristics. In another embodiment, the sensors may be coupled toportions of the vehicle 100 apart from the vehicle components and may beoperable for indirect measurement of each component's operationalcharacteristics. In yet another embodiment, the sensors may bepositioned at any location relative to the vehicle 100 and may beoperable to measure an operational characteristic of the vehicle 100directly or indirectly (e.g. inferred from the position of a vehiclecomponent), such as the position of the vehicle suspension linkage, orthe sprung versus un-sprung portion of the vehicle component, forexample. The sensors are used to determine the position, velocity,and/or acceleration of the suspension components (raw sensor data isused to calculate such parameters within the controller 65). Again, thesensors may be linear potentiometers, string potentiometers, contact ornon-contact membrane potentiometers, rotary potentiometers (such as ifused on a linkage fork or a rear suspension linkage), accelerometers, 3Dglobal position sensors (“GPS”), pressure sensors (for measuring the airspring or coil spring compression), and/or other type of sensors. Thesesensors may communicate either wired or wirelessly to the controller 65to communicate the sag position of the vehicle suspension or any othersuitable data. In one embodiment, the data sampling rate for the sensorsis about 500 Hz to allow sufficient sampling and resolution of thevehicle suspension movement during operation.

In one embodiment, the controller 65 is relatively small (about2″.times.3-3.5″.times.0.5-0.625″) and lightweight so as to notnegatively impact the user of the vehicle 100. The controller 65 neednot literally “control” anything but rather may cull data and send theresult to the device 50 for processing. The controller 65 may containone or more of the following major components: a low powermicroprocessor, a wireless communication chip (such as ANT+, Bluetooth,and/or Wi-Fi 802.11n), a battery, and flash memory. The controller 65may also have other sensors on board such as a GPS, a compass, anaccelerometer, an altimeter, and/or an air temperature sensor. Thecontroller 65 may also have one or more external features such asmulti-color LED's to communicate basic state of operation and batterycharge to the user and buttons to toggle power and start/stop datalogging. The controller 65 may also have an external mini USB connectorto connect to a computer or other external device for uploading of dataand charging the battery as well as external connectors to connect toany wired sensors.

In one embodiment, the controller 65 may record and evaluate the vehiclesuspension data in real time. The controller 65 may analyze parameterslike sag (static ride height), rebound and compression speed, top outand bottom out events. Then, after analysis is complete, the controller65 may communicate the results of the analysis with the device 50.Because there are many user interface devices that already have ANT+and/or Bluetooth built-in (e.g. Garmin.RTM. GPS, power meters,Apple.RTM. iPhone, etc.) it is contemplated that certain embodimentswill be compatible with these protocols. These 3rd party user interfacedevices generally have large displays with a developed GUI and usernavigation method via any or all of buttons, joystick, touch screen,etc. The built-in wireless capabilities are ideal for low density datatransmittal, but are not well suited for high speed data acquisition(because low power wireless data rates are generally limited). Byleveraging the existing device display and GUI capabilities, theapplicability of the system is increased. In one embodiment, the device50 is programmed with a data template or templates suitable for fillingwith data and/or calculations/suggestions from the controller 65. Inanother embodiment, the device 50 is programmed with input templates forfacilitating user input of suspension model, user weight, vehicle type,etc. as may be useful in aiding the controller 65 to look upcorresponding parameters. The controller 65 will communicate to thedevice 50 selected data or calculations (e.g. graphical, tabular,textual or other suitable format) to display to the user, such assuggestions for adjusting spring preload, air spring pressure (to adjustsag), rebound damping setting, compression damping setting, bottom outdamper setting, etc. Communication will also work in reverse to allowthe user to enter data, such as model of suspension, rider weight, etc.,in the device 50 which will relay the information to the controller 65.From such model information the controller 65 will look up modelrelevant parameters and use those to aid in calculating suggestions orfor processing raw sensor data.

In one embodiment, the controller 65 functions as a data receiver,processor, memory and data filter. The controller 65 receives highfrequency (high sampling rate) data from the suspension sensor(s).Because current user interface devices, particularly those usingwireless protocols, may not be capable of high enough data rates todirectly monitor the suspension sensors, the controller 65 may act as ahigh data rate intermediary between the suspension sensors and thedevice 50. In one embodiment, the controller 65 is configured to promptand accept high sampling rate data from the suspension sensors. Thecontroller 65 then stores the data and processes selected data atselected intervals for transmission to a user interface of the device50. In other words the controller 65 pares the effective data rate andmakes that pared data transmission to the user interface in real time.Additionally, the controller 65 stores all un-transmitted data for lateranalysis if desired. The controller 65 can later be plugged into acomputer system, such as a home computing device or laptop via a USBpigtail or dongle device. The controller 65 may also preprocess data andgenerate user friendly viewing formats for transmission to the userinterface of the device 50. The controller 65 may calculate data trendsof other useful data derivatives for periodic “real time” (effectivelyreal time although not exact) display on the user interface of thedevice 50.

In one embodiment, each vehicle 100 suspension component is equippedwith a position sensor for indicating the magnitude (or state) ofextension or compression existing in the vehicle 100 suspension at anygiven moment. As the suspension is used over terrain, such a sensor willgenerate a tremendous amount of data. Relatively high sampling rates areneeded to capture meaningful information in devices operating at suchhigh frequencies. For example, in one embodiment, a suitable telescopictube of the vehicle 100 suspension may be equipped or fitted with twopiezoelectric sensors. One of the piezoelectric sensors is a highfrequency exciter which is configured on the tube such that it(substantially) continuously induces impacts to a wall of the tube. Inlay terms, the sensor thumps or pings the tube wall on a continualbasis. The second piezoelectric sensor is an accelerometer fixed orconfigured with the tube wall so as to monitor vibration of the tubewall. The frequency of the exciter is intentionally set well outside anyresonant mode of the suspension tube as it travels through itsoperational suspension stroke. In one embodiment, a sensing frequency ofthe monitor is selected to coincide (substantially) with at least oneresonant mode range of the tube as it travels through its operationalstroke.

The aforementioned exciter and monitor are calibrated, in conjunctionwith the controller 65, so that values for resonant frequencies (in aselected mode or modes) of the suspension tube (or other suitable andvariably “ringing” suspension component) are correlated with axialextension/compression of the suspension containing or including thetube. Such correlation data is stored with the controller 65 for use inreal time calculation of axial suspension position based on real timeinput from the suspension resonant frequency monitor. The tube will tendto resonate regardless of the exciter frequency so by monitoring thechange in resonant frequency or tube “ringing”, with the monitor, theaxial position of the suspension can be derived within the controller65.

In one embodiment, the exciter and monitor act on and measure resonancewith a cavity of the vehicle 100 suspension wherein cavity resonanceversus axial suspension displacement is calibrated and correlated foruse in the controller 65. In another embodiment, magnetic flux leakageof a suspension component, or magnetic imposition of current in asurrounding conductive structure, is correlated with axial suspensiondisplacement. In yet another embodiment, optics may be used (e.g.Doppler effect) to measure displacement. In still another embodiment, amagnet is affixed to one portion of the suspension and a conductor isaffixed to a relatively movable portion of the suspension so that whenthe suspension moves axially the relative movement between the magnetand the conductor generates a changing current of flux in thearrangement (and that can be correlated with axial movement). In anotherembodiment, sonic or ultrasonic waves are used to excite a portion ofthe suspension and the changing reflective sonic signals are monitoredto determine axial disposition of the suspension.

In one embodiment, vehicle suspension components include scan compatibleidentification codes (e.g., bar codes or QR codes) specifying at leastmodel type and possibly including details including performancespecifications. The scan compatible identification codes may alsospecify other manufacture details such as lot, factory source, builddate, inventory numbers, invoice or tracking numbers,subassembly/assembly numbers, etc. In one embodiment, the codes and/ordata are included on a chip embedded in the suspension, such as anactive or passive radio frequency identification (“RFID”) tag. Thecontroller 65, which may include an RFID tag reader, detects the chipand, based on the data received there from, proceeds to configure, orsuggest configuration for, the vehicle suspension.

In one embodiment, the controller 65 and/or device 50 operates in asetup mode where rider input weight and suspension product data are usedto suggest initial spring preload and damper settings for the vehiclesuspension components. The controller 65 and/or device 50 may alsooperate in a ride mode wherein suspension movement (e.g. average travelused versus available, portion or range of travel used, number andseverity of bottom out or top out events) is monitored and used inconjunction with the rider and suspension data to suggest changes to thesuspension setup that better utilize or maximize usage of the suspensioncapabilities. In another embodiment, the controller 65 and/or device 50monitors compression range of the suspension to determine whether or notthe suspension is setup for optimal use of its range over a giventerrain 45. Too many top out events or bottom out events, or operationgenerally over only a portion of the available range, will indicate apossible need for adjustment to the spring pressure and/or damping rate,and the controller 65, upon calculating such range usage, sends anappropriate suggestion to the device 50, which is displayed to the user.In one embodiment, a GPS unit transmits real time GPS data to thecontroller 65 and such data is overlayed or paired with correspondingsuspension data along an elapsed (or relative sequence) time synchronousdata marker (or other suitable common data marker or “datum” type).

In one embodiment, a rebound setting can be automatically achieved byutilizing the air spring pressure or coil spring preload needed toachieve proper sag. The rebound setting is then achieved via feeding theair spring pressure for an air shock, or an oil pressure signal for acoil shock, down the damper shaft to a pressure sensitive damping valveat the damper shaft piston. Rebound damping requirements will varydepending on the stiffness of the suspension spring. A stiffer (orsofter) spring normally indicates more (or less) rebound damping as arequirement. In one embodiment, a rebound damper setting is calculatedfrom the sag calculation spring setting recommendation. In oneembodiment, there is an external rebound adjustor to make incrementalchanges from the predetermined setting to account for variedterrain/conditions, and/or riding style and preference.

In one embodiment, an initial sag setting can be automatically set andfacilitated by having a position valve within the shock for a givenlength bleed off air pressure until a specific sag level is achieved.Each shock stroke would have a specific length of sag/position valve.The user would pressurize their shock to a maximum shock pressure of,for example, 300 psi or so. The actual max number is not important atthis point. The idea is to over pressurize the shock beyond anyreasonable properly set sag pressure. The user then switches the shockto be in setup or sag mode and sits on the bike. The shock will bleedair from the air spring until the position valve encounters a shut offabutment which thereby shuts the bleed valve. In one embodiment, thedevice 50 or controller 65 “knows” a vehicle suspension component isextended beyond a proper sag level and a an electrically actuated valve(or other type of remote actuated valve) is opened to bleed air pressurefrom the air spring in a controlled manner until the properpredetermined sag level is reached, at which point the valveautomatically closes and the shock opts itself out of sag mode.Alternatively, the user can switch the sag set up mode off upon reachinga proper sag setting. When in a normal riding mode, more pressure can beadded to the air spring or pressure can be reduced from the air springto accommodate different rider styles and or terrain 45. This auto sagfeature can be achieved electronically as well, by having a positionsensor in the shock, and the shock model data allowing the controller 65to adjust spring preload (e.g. air pressure) appropriately for the givenmodel (as determined by the controller 65 in a query). An electronicallycontrolled pressure relief valve is utilized to bleed off air springpressure until the sensor determines the shock is at its' proper sag.The pressure relief valve is then directed to close and proper sag levelis achieved.

In one embodiment, the system 300 can be utilized by integrating certaindata collection sensors to both assist in the initial setup of thevehicle and to provide hints on how to tweak the vehicle 100 suspensionsystem beyond an initial setup. The sensors communicate with thecontroller 65. Data (e.g. model, specifications) corresponding to allpossible suspension products that may interface with the controller 65would be stored in the controller 65 so when one or another of thoseproducts is plugged in, or booted up if wirelessly connected, thecontroller 65 would know lengths, travels, external adjustment featuresetc. For each product connected to the controller 65, the controller 65(or device 50) would then walk the user through a proper setup routine,starting with sag for example, using the user interface provided bydevice 50. The user would sit on the bike and the rider sag measurementfor the fork and shock would be displayed on the device 50 for example.The controller 65 will know what product it is trying to get adjustedproperly and will make pressure recommendations for the user to input tothe shock or fork. The user then sits on the bike again and, in thisiterative and interactive process, will arrive at initial sag settingfor the fork and shock product being used.

In a more elaborate system, the controller 65 will “know” what pressureis in the fork and shock, and will make rebound recommendations based onthose settings. In a simpler form, the controller 65 will ask the userto input their final sag attaining pressures and will then make reboundrecommendations based on the product and pressures. The controller 65will also make compression damping setting recommendations based on theproduct connected to the controller 65. The user then goes out and ridesthe vehicle. The controller 65 will transfer to data logging mode oncethe bike is being ridden or in a simpler form when the user puts thesystem into ride mode. The controller 65 will log and save bottom outevents, average travel used, identify too quick or too slow reboundevents, etc. If average travel is more than a specified amount, thecontroller 65 will make recommendations on settings to have the systemrespond better in the stroke. If the average travel used in less than aspecified amount the controller 65 will make recommendations on settingsto utilize more travel. Full travel events will be evaluated versus theaverage travel used data and make recommendations on how to reduce orincrease the amount of full travel events. Computer (PC/laptop) softwaremay be utilized so the data logged can be downloaded to a computersystem for further evaluation.

A website, such as the FOX RACING SHOX website, can be utilized as aplace for riders to go to check out settings other riders are using andwhy, and to provide a way to spend time in a community, such as a FOXRACING SHOX community. In one embodiment, the controller 65 will logridden hours and will prompt the user to perform certain maintenanceoperations, and when data is downloaded to the computer system, such asa desktop/laptop machine, a link to the service procedure for theparticular recommended service will pop up. The link will be to a videoguild on how to perform the service, tools needed etc., if a user is atthe max of a particular adjustment feature on the closed or open side,the controller 65 will make a recommendation to have a service provider,such as FOX RACING SHOX, re-valve their system to get that particularadjustment feature into the middle of its' range again, and will makerecommendations to a service technician, such as a FOX RACING SHOXservice tech, on what direction to make the valving changes, etc. A moreelaborate system 300 can incorporate accelerometers, pressure sensors,etc.

FIGS. 4 through 22 illustrate templates for a program 325 executed ondevice 50, according to one embodiment. Program 325 may be implementedto assist a user in performing an initial setup of the vehicle 100suspension. Program 325 is configured to run on a smartphone, tablet,iPod.RTM., or other Internet enabled mobile device. Portions of program325 may be supported and enabled for devices that include an imagesensor 380 or video camera. In some embodiments, program 325 may beconfigured to be executed on a laptop or desktop computer. Program 325may be installed on device 50 from an online repository containingapplications compatible with device 50. For example, device 50 may be asmart phone such as Apple.RTM. iPhone and program 325 may be anapplication downloadable from the iTunes.RTM. store. Program 325 may beupdated periodically via the Internet, may transmit saved settings toremote storage, and may download current suspension product informationand physical characteristics. Product information, which may be usedautomatically in some calculations performed by program 325, may bestored in a database on device 50 or stored remotely on a locationaccessible through the device's network connection (e.g., wirelessconnection to the Internet).

In one embodiment, program 325 is used to manually setup front fork 80and shock absorber 25 of vehicle 100. In some embodiments, vehicle 100does not include sensors (5, 5 b, 5 c, etc.) for measuring the positionof the vehicle suspension components. The vehicle suspension componentsmay not include actuators, such as valve assembly 511, configured toadjust the damping rate remotely. In such embodiments, program 325assists the user in manually adjusting the pressure in the air springand the damping rate of the damping components in the shock absorbers.Furthermore, device 50 may be “dumb” in that device 50 does notcommunicate with a controller 65 to receive information about theoperational characteristics of the vehicle suspension components.

If acquiring the program 325 for the first time, the user may connect tothe online repository (e.g., iTunes) for downloading like programs 325and either download the program 325 directly to device 50 or downloadthe program 325 to a computer that is then synched to device 50 totransfer the program 325 to the device 50. Once the program 325 isloaded onto the device 50, the user can open the program 325 to beginthe setup routine. Once the program 325 is loaded, the program displaysa set of templates that allow the user to read instructions on how tosetup the various components of the vehicle suspension, prompt the userfor input such as the component IDs of the various suspension componentsor the user's weight with full riding gear, and display pictures orvideos that show the user how to properly setup the vehicle suspension.The various screen shots of one embodiment of program 325 are describedin more detail below.

As shown in FIG. 4, program 325, when executed by processor 310, isconfigured to display a graphical user interface (GUI) 400 that includesa plurality of templates such as the first screen shot 400 a. GUI 400includes a status bar at the top of the display that includesinformation such as a time, cellular connectivity information, andbattery status. It will be appreciated that other types of informationmay be included in the status bar. Furthermore, in some embodiments, thestatus bar may be controlled by an operating system executed by device50 and not directly configured by program 325. The first screen shot 400a also displays a logo and description of the program 325. The firstscreen shot 400 a includes user interface elements such as button 402and button 404. As described above, display 350 may comprise a touchsensitive LCD panel that enables a user to touch the screen proximate tobuttons 402 and 404 to provide input to program 325. As shown in FIG. 4,a user is given the option to create a new setup routine by selectingbutton 402 or to load a previously saved setup routine by selectingbutton 404.

As shown in FIG. 5, when a user selects button 402 to create a new setuproutine, program 325 displays a second screen shot 400 b that includes abutton 406 to go back to the first screen shot 400 a. The second screenshot 400 b includes information for a user that instructs the user thatfurther information may be available from a source such as a vehiclesuspension component supplier. The second screen shot 400 b alsoincludes a button 408 that, when selected, begins the setup routine.

As shown in FIG. 6, a third screen shot 400 c shows a user how to locateproduct identification information on vehicle forks 80 and shocks 25. Asshown, product labels may include labels that provide a component ID(i.e., a unique code that specifies the particular suspension componentinstalled on the vehicle 100). In one embodiment, the component IDcomprises a 4-digit alpha-numeric code that uniquely identifies eachsuspension component type. The labels may include bar codes or QR codesthat can be scanned using an image sensor 380 included in device 50. Forexample, a user may use an image sensor 380 to capture an image of thebar code on each of the fork 80 and shock absorber 25. Program 325 maythen decipher the bar codes to automatically retrieve the component IDfor the various vehicle suspension components. Again, the third screenshot 400 c includes button 406 to go to the previous screen (e.g., 400b) and includes a button 410 to proceed to the next screen (e.g., 400d).

As shown in FIG. 7, a fourth screen shot 400 d enables a user tomanually input component IDs for both the fork 80 and the shock 25 forvehicle 100. Again, if the vehicle suspension component labels include abar code or QR code, then the fourth screen shot 400 d may include userinterface elements that enable a user to automatically scan the labelsto retrieve the component IDs. However, as shown in FIG. 7, the fourthscreen shot 400 d includes a first user interface element 412 and asecond user interface element 414 that enable a user to manually entercomponent IDs for both the front fork 80 and the shock absorber 25,respectively. Touching either the first user interface element 412 orthe second user interface element 414 may cause a keyboard to bedisplayed that lets a user type in the component IDs read from thelabels. The fourth screen shot 400 d also includes a button 406 to go tothe previous screen (e.g., 400 c) and a button 410 to proceed to thenext screen (e.g., 400 e).

User input entered in the fourth screen shot 400 d may control the orderthat subsequent screen shots are displayed while performing the setuproutine. For example, if a user only enters the component ID for thefront fork 80, then only those screen shots associated with proper setupof the front fork 80 will be displayed. Similarly, if a user only entersthe component ID for the shock absorber 25, then only those screen shotsassociated with proper setup of the shock absorber 25 will be displayed.

The component ID enables program 325 to query a database to retrieveproduct information related to the specific vehicle suspensioncomponent. The product information may include, but is not limited to,product name/model, the available external adjustments available for thecomponent, the length of travel of the component, a preferred sagsetting for the component, the range of adjustment for each of theexternal adjustors available for the component, and physicalcharacteristics of the component such as air spring piston area, airvolume compression ratio, composite spring curve shape, upper tubeoutside diameter for a fork, and shock body outside diameter for ashock. Once a user enters a component ID into user interface elements412 or 414, program 325 may check the entered component ID against theproduct information in the database and indicate whether a match wasfound. For example, program 325 may display an error message when amatch is not found for the entered component ID. Program 325 may displaytext or a graphic next to the user interface elements 412 and 414 when amatch is found that indicates to a user that product informationassociated with the component ID was located. For example, a thumbnailimage of the component may be displayed next to the user interfaceelement 412 or 414.

As shown in FIG. 8, a fifth screen shot 400 e instructs a user toprepare the fork 80 and shock 25 for proper setup. The fifth screen shot400 e depicts how the fork compression damping adjusters and the forkrebound adjusters look on the product as well as how to set theadjusters at the beginning of the setup routine. The fifth screen shot400 e also includes a button 406 to go to the previous screen (e.g., 400d) and a button 410 to proceed to the next screen (e.g., 400 f).

As shown in FIG. 9, a sixth screen shot 400 f instructs a user to removethe air valve caps for the fork 80 and the shock absorber 25. In orderto perform the setup routine, a user will need an air pump to properlyset the air pressure in the fork 80 and shock absorber 25. The air pumpmay include an integrated air pressure gauge used to determine thecurrent air pressure in the fork 80 or shock absorber 25. In someembodiments, the air pump may include an integrated pressure transducerthat instructs the air pump how much pressure is in the fork 80 or theshock absorber 25. The user may set the air pump to pressurize the fork80 or shock absorber 25 to a specific pressure and the air pump mayautomatically add air to the fork 80 or shock absorber 25 to thespecific pressure. In some embodiments, the air pump may communicatedirectly with the device 50 such that the program 325 automaticallyconfigures the set points (i.e., suggested pressure) for pressurizingthe fork 80 or shock absorber 25. The sixth screen shot 400 f alsoincludes a button 406 to go to the previous screen (e.g., 400 e) and abutton 410 to proceed to the next screen (e.g., 400 g).

FIGS. 10 through 14 illustrate the fork adjustment specific screensdisplayed by program 325. As shown in FIG. 10, a seventh screen shot 400g enables a user to determine an initial pressure setting for the fork80 depending on a fully-loaded weight of the user. The seventh screenshot 400 g includes a first user interface element 416 that enables auser to enter the fully-loaded weight for the intended ridingconditions. As shown, the first user interface element 416 may be aselector wheel that can be moved up or down to select the desiredfully-loaded weight. In alternative embodiments, the first userinterface element 416 may be similar to user interface elements 412 or414 that enable a user to enter the weight using a keyboard. In yetother embodiments, device 50 may be in communication with a scale orother sensor that measures the fully-loaded weight of the user. Forexample, a user may be able to sit on a vehicle and a sensor, such as astrain gauge and wheatstone bridge, may be used to measure thefully-loaded weight of the user.

The seventh screen shot 400 g includes a second interface element 418that indicates a target pressure at which the air spring in the forkshould be set and a third interface element 420 that lets a user togglebetween imperial units and metric units. For example, as shown, imperialunits (i.e., pounds and pounds per square inch) are displayed in userinterface element 416 and 418. Although not shown, the user may beinstructed in how to attach and use the shock pump with the fork 80 viaa description or graphical or video depiction. The target pressure isderived via a calculation based on the fully-loaded weight of the riderand the physical parameters of the suspension component retrieved in theproduct information. For example, the air spring compression ratio, theair spring piston area, the negative spring length, the negative springrate, and the top-out spring rate can be used to calculate a more exactstarting pressure. For example, the program 325 may be configured tocalculate a starting pressure corresponding to a particular sag setting(e.g., 25%). Given the retrieved product information, the program 325can determine a starting pressure that would result in the shockabsorber 25 being compressed to 25% under a load equal to the selectedfully-loaded weight. In one embodiment, the target pressure iscalculated dynamically based on the product information. In anotherembodiment, the target pressure is pre-calculated for each possiblefully-loaded weight and stored in an array that may be accessed byprogram 325. The seventh screen shot 400 g also includes a button 406 togo to the previous screen (e.g., 400 f) and a button 410 to proceed tothe next screen (e.g., 400 h).

FIGS. 11A through 11D illustrate an eighth screen shot 400 h thatprovides a graphical depiction of how to set an indicator member locatedon a tube of the fork 80 to indicate a position of the fork 80 whenfully-loaded. In this embodiment, the indicator member comprises ano-ring, but it is intended that similar or equivalent functionality canbe provided by other structures, as described herein. For example, otherstructures may include a plastic member that fits tightly over the shaftof the suspension component (i.e., fork 80 or shock absorber 25) and ismovable relative thereto. In a first step, as graphically depicted inFIG. 11A, the user is instructed to remove the pump from the valve ofthe air spring of the fork 80. In a second step, as graphically depictedin FIG. 11B, the user is instructed to get on the vehicle in a ridingposition. The user should be equipped with the proper riding gear toapproximately match the fully-loaded weight entered by the user in theseventh screen shot 400 g. In a third step, as graphically depicted inFIG. 11C, the user is instructed to slide the o-ring to the seal on thetop of the lower tube on the fork 80. In a fourth step, as graphicallydepicted in FIG. 11D, the user is instructed to dismount the vehicle100. As the fork 80 expands, the o-ring remains in position on the uppertube indicating an amount of travel between the fork 80 as compressed bythe fully-loaded weight and the fork 80 as compressed only by the weightof the vehicle 100. It will be appreciated that the user should takecare when dismounting the vehicle 100 to avoid further compressing thefork 80 past the steady state position based on the fully-loaded weightof the rider and intended riding gear. The eighth screen shot 400 h alsoincludes a button 406 to go to the previous screen (e.g., 400 g) and abutton 410 to proceed to the next screen (e.g., 400 i).

It is to be noted however, that the invention is not limited to the useof an o-ring as the indicator member. In other embodiments, theindicator member can be any suitable e.g. a full or part ring ofplastics material. When in the form of a part-ring, the user could clipthe indicator member to the shaft for the purposes of sag adjustment andthen remove the part-ring when finished. In other embodiments, a full orpart-ring is fitted to the suspension component at point of manufacture.The indicator member can be any colour or combination of colors thatenables it to be identified by an object recognition algorithm whenmounted on the suspension component.

As shown in FIG. 12A, a ninth screen shot 400 i shows a graphicaloverlay to be used in conjunction with a camera mode of the device 50.The graphical overlay is a depiction of the air spring leg of the frontfork 80 and is selected from one or more graphical overlayscorresponding to the various vehicle suspension components. Theparticular graphical overlay displayed in the ninth screen shot 400 i isselected based on the front fork component ID entered on the fourthscreen shot 400 d. The graphical overlay includes portions 422 and 424that correspond to the approximate shape of the upper portion of thelower tube and the cap for the upper tube, respectively. The graphicaloverlay also includes a partially transparent portion 426 thatcorresponds to the shaft for the upper tube of the air spring leg of thefork 80.

As shown in FIG. 12B, when program 325 displays the ninth screen shot400 i, program 325 may activate a camera mode of device 50. In thecamera mode, program 325 may display an image captured using an imagesensor 380 under the graphical overlay of the front fork. The image maybe updated periodically such as in a video mode where a new image iscaptured every 33 ms (i.e., 30 frames per second). Periodically updatingthe image in a video mode enables the user to align the scene with thefork 80 with the graphical overlay portions 422, 424. The user moves thedevice 50 such that the seal 428 on the top edge of the lower tube ofthe fork 80 is approximately aligned with the portion 422 of thegraphical overlay corresponding to the upper portion of the lower tube.The user also moves the device 50 such that the scale of the lower tubeis approximately equal to a scale of the graphical overlay such as bymatching the captured diameter of the lower tube of the fork to thewidth of the portion 422 of the graphical overlay. When the device 50 isin the correct relative position to capture an image of the fork 80 atthe correct scale and orientation, the user may select the scan userinterface element 432 to capture an image of the fork 80. In oneembodiment, because the diameter of the lower tube is known from theproduct information specified by the component ID, the program 325 canmeasure the width of the lower tube, in pixels, of the fork captured bythe image sensor 380 and compare that to the distance, in pixels,between the seal 428 of the lower tube and the position of the o-ring430. The ratio of the distance to width, in pixels, may be multiplied bythe known diameter of the lower tube to determine an amount ofcompression of the fork 80 based on the fully-loaded weight of the rider(i.e., amount of sag). In some embodiments, the fork 80 or shock 25 mayinclude markings, such as index marks or dots, on the component thatenable program 325 to register a scale of the component. For example,the markings may be of high contrast with the surface of the shockcomponent and equally spaced such that object recognition is easilyperformed. In another embodiment, the program 325 may assume that theuser has captured the image of the fork 80 at the same scale as thegraphical overlay. Therefore, program 325 may only measure the positionof the o-ring 430 in the image relative to pixels corresponding to theedge of the portion 422 of the graphical overlay. The program 325 mayimplement an image processing algorithm, described more fully below inconnection with FIGS. 24A-26B, to determine the location of the o-ring430 in relation to the graphical overlay.

In alternative embodiments, the graphical overlay may include indicatorsthat provide the user with feedback as to whether the proper sag settinghas been achieved. For example, the graphical overlay may include a lineor other indicator that indicates the approximate location of the o-ringcorresponding to a preferred sag setting (e.g., 1.5 inches of travel fora fork with 6 inches of total travel corresponding to 25% sag). In someembodiments, the graphical overlay may also include gradient indicatorsin combination with pressure delta recommendations indicating whetherthe user should refine the pressure in the air spring. For example, ifthe sag setting is off by more than 5%, the color gradient may changefrom green to yellow indicating that further adjustment of the pressurein the air spring is appropriate. If the sag setting is off by 20%, thenthe color gradient may change from yellow to red indicating that furtheradjustment of the pressure in the air spring is necessary. The ninthscreen shot 400 i also includes a button 406 to go to the previousscreen (e.g., 400 h) and, although not shown explicitly, a button 410 toproceed to the next screen (e.g., 400 j). The scan user interface button432, once pressed, may be replaced with button 410. In otherembodiments, the scan user interface button 432 as well as buttons 406and 410 may be displayed simultaneously.

As shown in FIG. 13, a tenth screen shot 400 j instructs a user to makean adjustment to the air pressure in the air spring of the fork 80. Thetenth screen shot 400 j includes a user interface element 434 thatspecifies the new adjusted pressure for the air spring based on themeasured o-ring 430 position. The tenth screen shot 400 j also includesa button 406 to go to the previous screen (e.g., 400 i) and a button 410to proceed to the next screen (e.g., 400 k).

As shown in FIG. 14, an eleventh screen shot 400 k instructs a user tomake an adjustment to the rebound damping setting for the fork 80. Inone embodiment, the rebound damping setting is calculated based on theadjusted air pressure setting of the air spring of the fork 80. In oneembodiment, the fork 80 includes an external adjuster for adjusting theamount of rebound damping in the damping leg of the fork 80. The rebounddamping is adjusted by turning the knob counter-clockwise to increasethe damping, thereby slowing how quickly the fork 80 extends after beingcompressed by terrain. The eleventh screen shot 400 k includes a userinterface element 436 that specifies the setting for the externalrebound adjuster. For example, as shown, a user may turn the externalrebound adjuster fully clockwise, corresponding to the minimum amount ofrebound damping. Then, the user turns the external rebound adjusterclockwise by the specified number of clicks, each click corresponding toa discrete adjustment point. In alternative embodiments, fork 80 mayinclude other means for adjusting the amount of damping implemented inthe damping leg of the fork 80. For example, the rebound damping may beadjusted by a level, a dial, a cam, an electrically or pneumaticallycontrolled actuator, or any other technically feasible mechanism foradjusting the rebound damping. In the alternative embodiments, theinstructions and user interface element 436 may reflect instructions andsettings for these alternative mechanisms. In some embodiments, theeleventh screen shot 400 k instructs a user to make an adjustment to thecompression damping setting for the fork 80. The compression dampingsetting may also be calculated based on the adjusted air pressuresetting of the air spring of the fork 80.

Once the user has adjusted the rebound damping to the correct setting,the fork 80 is properly setup. As long as the user has entered a validcomponent ID for a shock absorber 25 into user interface element 414 ofFIG. 7, the setup routine continues by displaying the set of templatesassociated with the setup of a shock absorber 25. The eleventh screenshot 400 k includes a button 406 to go to the previous screen (e.g., 400j) and a button 410 to proceed to the next screen (e.g., 400 l).

FIGS. 15 through 19 illustrate screen shots 400 l through 400 pdisplayed to assist the user in performing proper setup of a shockabsorber 25. Screen shots 400 l through 400 p are similar to screenshots 400 g through 400 k of FIGS. 10 through 14, except displayinginformation and graphical overlays related to the shock absorber 25identified by the component ID entered into user interface element 414rather than the fork 80 identified by the component ID entered into userinterface element 412. As shown, each screen shot 400 l through 400 pincludes a button 406 to go to the previous screen and a button 410 toproceed to the next screen. Some of the graphical depictions may bechanged to show the location of controls or adjusters associated withshock absorber 25 instead of fork 80. Once setup of shock absorber 25 iscomplete, a user may select button 410 of sixteenth screen shot 400 p toproceed to the next screen (e.g., 400 q).

As shown in FIG. 20, a seventeenth screen shot 400 q displays a summaryof the setup parameters to the user. Setup parameters for the fork 80include a target air pressure for the air spring of the fork 80 and arebound damping setting for the damper of the fork 80. Setup parametersfor the shock absorber 25 include a target air pressure for the airspring of the shock absorber 25 and a rebound damping setting for thedamper of the shock absorber 25. The seventeenth screen shot 400 qincludes a first button 438 that enables a user to save the setupparameters associated with the just completed setup routine. An userinterface element 440 enables a user to type a name for the saved setuproutine. If the user so chooses, a button 442 enables the user todiscard the setup parameters and return to the home screen 400 a. Theseventeenth screen shot 400 q also includes button 406 to go back to theprevious screen (e.g., 400 p).

Returning to the first screen shot 400 a of FIG. 4, instead ofperforming a new setup routine by selecting button 402, a user maysimply refer to setup parameters stored in saved setup routines byselecting button 404 and proceeding to an eighteenth screen shot 400 r.As shown in FIG. 21, an eighteenth screen shot 400 r displays a list ofsaved setup routines. The eighteenth screen shot 400 r includes a button444 that enables a user to edit each of the saved setup routines. In oneembodiment, selecting the button 444 lets a user delete any of the savedsetup routines. In another embodiment, selecting the button 44 lets auser change any of the saved parameters in the setup routine. Forexample, after performing a setup routine and riding the vehicle for aperiod of time, a user may determine that they prefer a stiffersuspension and, therefore, may edit the parameters in the setup routineto indicate higher air pressures for the air spring of the fork 80 orthe air spring of the shock absorber 25, or both. The eighteenth screenshot 400 r also includes a button 406 to go back to the previous screen(e.g., 400 a).

Selecting any of the saved setup routines listed in the eighteenthscreen shot 400 r causes program 325 to display the nineteenth screenshot 400 s, as shown in FIG. 22. The nineteenth screen shot 400 sdisplays the setup parameters for the selected setup routine. Thenineteenth screen shot 400 s also includes a button 406 to go back tothe previous screen (e.g., 400 r).

The image overlay view of the ninth screen shot 400 i or the fourteenthscreen shot 400 n helps the user measure and properly set a vehiclesuspensions sag. The view comprises a graphical overlay on top of a liveview as seen from an image sensor 380. This technique for viewing a liveimage with a graphical overlay may sometimes be referred to as aheads-up display or HUD. The user may move and orient the device 50 via6 degrees of freedom (i.e., translation in x, y, and z coordinates aswell as rotation around each of the three axes). Thus, the user can lineup the live view of the suspension component with the static overlay ofthe graphical representation of the component.

Various methods exist to align and orient the live view with thegraphical overlay. In one embodiment, the user may align two or moreindicators in the graphical overlay with corresponding points on thesuspension component. For example, the user may align one indicator witha left edge of the lower tube of the fork 80 in the view and a secondindicator with a right edge of the lower tube of the fork 80 in theview. Aligning these two indicators with the corresponding oppositeedges of the lower tube will ensure that the live view is correctlyscaled to the graphical overlay. Aligning the top edge of the lower tube(i.e., a seal) with a third indicator will then ensure that thegraphical overlay is correctly positioned. The size and scale of thegraphical overlay corresponds to the physical dimensions of thesuspension component.

FIGS. 23A-F illustrate one technique for aligning a live view 710captured by an image sensor 380 with a graphical overlay 720 shown onthe display 350 of the device 50, according to one embodiment. A liveview 710 captured from the image sensor 380 is shown in FIG. 23A. Thelive view 710 includes an image of a shock absorber captured by theimage sensor 380. FIG. 23B shows a graphical overlay 720 displayed onthe display 350 and superimposed on top of the live view 710 captured bythe image sensor 380. The graphical overlay 720 includes threeindicators 722, 724, and 726 (e.g., lines) used to align and orient thelive view 710 of the shock absorber with the device 50. FIG. 23C shows acomposite image 730 of the live view 710 aligned with the graphicaloverlay 720. FIG. 23D shows another composite image 740 of the live view710 aligned with a second graphical overlay having two indicators; afirst indicator 742 aligned with the sealed end of the shaft of theshock absorber and a second indicator 744 aligned with a bushing end ofthe shaft of the shock absorber. FIG. 23E shows a third graphicaloverlay 750 that includes graphical representations for one or moreportions of the shock absorber. In the example shown in FIG. 23E, aportion of the sealed end of the main cylinder body of the shockabsorber is shown along with a bushing at the other end of the shaft.FIG. 23F shows yet another composite image 760 of the live view 710aligned with a third graphical overlay 750.

Once the live image 710 has been correctly aligned with the graphicaloverlay 720, the program 325 analyzes one or more frames 800 capturedfrom the image sensor 380 to recognize and determine an o-ring 430position on the shaft of the suspension component. FIGS. 24A and 24Billustrate an object detection algorithm for determining the location ofo-ring 430 relative to the suspension component, according to oneembodiment. As shown in FIG. 24A, frame 800 comprises a digital image ofthe suspension component captured by the image sensor 380. The format offrame 800 may be in any technically feasible digital image format (e.g.,a bitmap or JPEG (Joint Pictures Expert Group)), that stores digitalimage data for a plurality of pixels. For example, for bitmaps at 24 bpp(bits per pixel) in an RGBA format, each pixel is associated with 4channels of color data (i.e., red, green, blue, and alpha) at 8 bits perchannel (i.e., each color is stored as an intensity value that rangesbetween 0-255). Program 325 analyzes each of the one or more frames 800to determine a location of the o-ring 430 on the shaft.

In one embodiment, for each frame 800, program 325 analyzes a portion810 of the frame 800 that, if the live image 510 was properly alignedwith device 50, corresponds to the shaft of the suspension component.Program 325 crops the frame 800 so that the analysis is only performedon the smaller portion 810 comprising a subset of pixels of frame 800,which should correspond to pixels associated with the surface of theshaft and a portion of the o-ring 430. Program 325 also converts theportion 810 from a color format to a grayscale format (i.e., 8 bits perpixel that represents an intensity level between white (255) and black(0)). Typically, most devices with integrated image sensors include aCMOS sensor or CCD sensor with an integrated color filter array thatcaptures color images. However, the object detection algorithmimplemented by the program 325 does not detect objects, or edges ofobjects, based on color. Therefore, converting the image data tograyscale may reduce the complexity of calculations during imageprocessing.

It will be appreciated that the shaft of the suspension components istypically a tube of machined aluminum or some other type of curvedsurface of various metallic materials. The curved surface of the shaftresults in specular highlights reflected off the surface such that theintensity values associated with the surface of the shaft as captured bythe image sensor 380 have a wide range in values. However, specularreflection depends largely on the orientation of the surface from thelight source. In other words, across the width of the shaft, theintensity of the pixel may vary wildly across the shaft, but along thelength of the shaft (i.e., parallel to the longitudinal axis), theintensity of the pixels should be relatively similar except atdiscontinuities in the surface such as located at the edges of theo-ring 430. Thus, in one embodiment, program 325 creates slices 820 ofthe portion 810 of the frame 800 and analyzes each slice 820independently, as described below. In one embodiment, each slice 820 isequivalent to one row of pixels from the portion 810 of the frame 800.

In one embodiment, for each slice 820, program 325 normalizes theintensity levels for each of the pixels included in the slice 820.Again, for each pixel represented as a grayscale 8-bit intensity value,0 represents black and 255 represents white with shades of grayrepresented between 0 and 255. Normalizing the intensity value for thepixels increases the contrast of that particular slice 820. For example,if the range of intensity values for all pixels in the slice 820 isbetween 53 and 112, normalizing the intensity values of the pixelscomprises setting each pixel's intensity value to between 0 and 255based on the relative position of the old intensity value to the rangebetween 53 and 112. After the first normalizing step is complete,program 325 clips the intensity values for all pixels in the normalizedslice 820 above a threshold intensity level to be equal to the thresholdintensity level. For example, any pixels having an intensity value above50 are clipped such that all pixels have a maximum intensity value of50. The resulting clipped slice 820 includes black pixels and pixels atvarious dark shades of grey. Program 325 then normalizes the intensitylevels again, setting all pixels having an intensity value of 50 toequal 255 and the intensity levels for all other pixels between 0 and254, where at least one pixel (i.e., the pixels in the original,unprocessed slice 820 with the lowest intensity value) has an intensitylevel of 0 (i.e., fully black).

Program 325 then combines the normalized slices 820 to form a highcontrast image that is then filtered to generate a filtered image 850,as shown in FIG. 24B, of the portion 810 of the frame 800. Thenormalized slices 820 are combined into a new image and filtered toremove stray pixels and other noise that may be captured by the imagesensor 380. For example, multiple lights and/or shadows may create lowintensity pixels at locations on the surface of the shaft that are notat the location of the o-ring 430. As shown in FIG. 24B, the resultingfiltered image 850 includes a large area of white (high intensity) thatcorresponds to the surface of the shaft of the suspension component aswell as a plurality of black pixels that should correspond to the edgesof the o-ring 430. Program 325 analyzes the filtered image 850 to findthe edges for any objects in the filtered image 850. At least some ofthese edges should correspond to the edges seen at the perimeter of theo-ring 430. Program 325 then analyzes the detected edges to find allsubstantially vertical lines formed by the edges and selects the medianvertical line position as the likely location of the o-ring 430.

The above described technique for finding the likely location of theo-ring 430 includes a number of processing steps that may take time insome simple devices 50. In some embodiments, processing may be reducedby relying on a simpler technique that doesn't attempt to filter outnoise and irregularities in the captured portion 810 of the frame 800.Although not as reliable as the technique described above, thisalternative technique is less computationally intensive. In analternative embodiment, program 325 sums the intensity values for pixelsin each column of pixels for the portion 810 of the original capturedframe 800 to generate a single row of intensity sums for each column.The column of pixels associated with the lowest total intensity sum isthen selected as the likely location of the o-ring 430. In other words,the column of pixels in portion 810 having the lowest average intensityvalue is selected as the likely location of the o-ring 430.

FIGS. 25A and 25B set forth flow diagrams of method steps for assistinga user in performing a setup routine, according to one embodiment.Although the method steps are described in conjunction with the systemsof FIGS. 1-24B, persons of ordinary skill in the art will understandthat any system configured to perform the method steps, in any order, iswithin the scope of the present invention.

As shown, a method 900 begins at step 902, where processor 310 executesprogram 325 on device 50. Program 325 displays a GUI 400 on display 350.At step 904, program 325 prompts a user to enter one or more componentIDs that identify the suspension components installed on the vehicle100. Component IDs may be typed into a user interface element in GUI 400or scanned in automatically using an image sensor 380. Program 325 maycheck a database, stored locally or remotely, to determine whether thecomponent IDs match a particular suspension product stored in thedatabase. Program 325 may then retrieve product information associatedwith the suspension product specified by the component IDs. At step 906,program 325 prompts a user to set external adjusters for the air springand rebound settings of the suspension component, as applicable. Forexample, program 325 may display instructions as text in a GUI 400, asshown in screen shot 400 e

At step 908, program 325 prompts a user to enter a fully-loaded ridingweight. In one embodiment, program 325 displays user interface elementsas part of GUI 400 that enable a user to enter a fully-loaded ridingweight, as shown in screen shots 400 g and 400 l. In another embodiment,program 325 may automatically read a fully-loaded riding weight byquerying a load sensor on vehicle 100 when the user indicates that thevehicle has been fully-loaded. At step 910, program 325 prompts a userto set a pressure of the air spring in the suspension component based onthe fully-loaded riding weight. In one embodiment, program 325calculates a target air pressure for the air spring based on thefully-loaded riding weight entered in step 908 and one or more physicalcharacteristic values associated with the suspension component that areretrieved from a database based on the component ID. Program 325 maydisplay the target air pressure in a user interface element of GUI 400,as shown in screen shots 400 g and 400 l. At step 912, program 325prompts a user to sit on the vehicle 100 and adjust an o-ring 430 tomark a compression level of the suspension component. In one embodiment,program 325 displays instructions through a series of textual andgraphical elements in GUI 400, as shown in screen shots 400 h and 400 m.Once the o-ring 430 is adjusted, the user may dismount the vehicle 100such that the o-ring remains at a location on the shaft of thesuspension component and indicates the amount of compression of thesuspension component when compressed by the fully-loaded riding weight.

At step 914, program 325 captures a digital image of the suspensioncomponent in an unloaded state (e.g., fully extended). A user may use animage sensor 380 to capture an image of the suspension component that isproperly aligned and oriented relative to the device 50. In oneembodiment, program 325 displays a graphical overlay on top of a liveview captured by the image sensor 380 on display 350, as shown in screenshots 400 i and 400 n. At step 916, program 325 analyzes the digitalimage to determine a location of the o-ring 430. In one embodiment,program 325 analyzes the digital image using an object detectionalgorithm described below in conjunction with FIGS. 26A and 26B.

At step 918, program 325 prompts the user to adjust the pressure of theair spring based on the detected o-ring 430 location. At step 920,program 325 prompts the user to adjust the rebound damping setting to asuggested rebound setting. The rebound damping setting is calculatedbased on the adjusted pressure of the air spring. In one embodiment,program 325 may also prompt the user to adjust the compression dampingsetting to a suggested compression setting based on the adjustedpressure of the air spring. At step 922, program 325 prompts the user tosave the recommended setup parameters generated by the setup routine.After the user is allowed to save the setup parameters, method 900terminates.

FIGS. 26A and 26B set forth flow diagrams of method steps for an objectdetection algorithm implemented by program 325, according to oneembodiment. Although the method steps are described in conjunction withthe systems of FIGS. 1-24B, persons of ordinary skill in the art willunderstand that any system configured to perform the method steps, inany order, is within the scope of the present invention.

As shown, a method 1000 begins at step 1002, where program 325 receivesa portion 810 of a digital image 800 to be analyzed. In one embodiment,program 325 crops an image captured with image sensor 380 to generate acropped image that should correspond to an image of the shaft of thesuspension component and an o-ring 430. The extents of the portion 810may be determined based on product information retrieved from thedatabase using the component ID and specified in conjunction with thegraphical overlay for the suspension component. At step 1004, program325 divides the portion 810 of the digital image into a plurality ofslices 820. In one embodiment, each slice 820 represents a row of pixelsfrom the portion 810 of the digital image 800.

For each slice, at step 1006, program 325 normalizes the intensity valueassociated with each pixel of the slice 820 during a first pass. At step1008, program 325 clips the intensity value for any pixels having anintensity value above a threshold value. At step 1010, program 325normalizes the intensity value associated with each pixel in the slice820 during a second pass. At step 1012, program 325 determines whethermore slices 820 need to be processed. If more slices 820 need to beprocessed, then method 1000 repeats steps 1006, 1008, and 1010 for thenext slice 820. If all the slices 820 in the portion 810 of the digitalimage 800 have been processed, then, at step 1014, program 325 generatesa processed image by combining the plurality of normalized slices 820into a composite image corresponding to portion 810.

In one embodiment, at step 1016, program 325 filters the processedimage. For example, program 325 may implement any technically feasiblefiltering algorithm to remove excess noise from the processed image suchas by adjusting a pixels intensity value based on the intensity valuesof two or more proximate pixels. At step 1018, program 325 processes thefiltered image using an edge detection algorithm to find one or moresubstantially vertical lines in the processed image, which may be anytechnically feasible edge detection algorithm commonly known to those ofskill in the art. Program 325 uses the edge detection algorithm todetermine the locations of one or more substantially vertical edges inthe portion 810. At step 1020, program 325 selects the location of themedian substantially vertical line in the processed image as thelocation of the o-ring 430. Program 325 may sort the plurality ofsubstantially vertical edges by location and then select the medianlocation associated with a substantially vertical edge.

In sum, a user may utilize a mobile device equipped with an imagesensor, such as a smart-phone, tablet computer, or laptop, to assist theuser in proper setup of a vehicle suspension. The device executes anapplication that prompts the user for input and instructs the user toperform a series of steps for adjusting the suspension components. Theapplication may not communicate with sensors on the vehicle, or theapplication may communicate with various sensors located on the vehicleto provide feedback to the device during the setup routine. In oneembodiment, the system analyzes a digital image of the suspensioncomponent to provide feedback to the application about a physicalcharacteristic of the component, such as the amount of sag of thevehicle suspension when loaded. The application may use this feedbackinformation to assist the user in further adjustment to the vehiclesuspension

While the foregoing is directed to embodiments of the invention, otherand further embodiments of the invention may be devised withoutdeparting from the basic scope thereof. For example, aspects of thepresent invention may be implemented in hardware or software or in acombination of hardware and software. One embodiment of the inventionmay be implemented as a program product for use with a computer system.The program(s) of the program product define functions of theembodiments (including the methods described herein) and can becontained on a variety of computer-readable storage media. Illustrativecomputer-readable storage media include, but are not limited to: (i)non-writable storage media (e.g., read-only memory devices within acomputer such as CD-ROM disks readable by a CD-ROM drive, flash memory,ROM chips or any type of solid-state non-volatile semiconductor memory)on which information is permanently stored; and (ii) writable storagemedia (e.g., floppy disks within a diskette drive or hard-disk drive orany type of solid-state random-access semiconductor memory) on whichalterable information is stored. Such computer-readable storage media,when carrying computer-readable instructions that direct the functionsof the present invention, are embodiments of the invention.

The disclosure has been described above with reference to specificembodiments. Persons of ordinary skill in the art, however, willunderstand that various modifications and changes may be made theretowithout departing from the broader spirit and scope of the disclosure asset forth in the appended claims. The foregoing description and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

The invention claimed is:
 1. A non-transitory computer-readable storagemedium including instructions that, when executed by a processor, causethe processor to perform steps for adjusting a suspension component of avehicle, the steps comprising: receiving a digital image of thesuspension component comprising: a plurality of pixels associated with ashaft of the suspension component; and an indicator member positioned toindicate a level of sag of the suspension component under a load;analyzing the digital image to determine a location of the indicatormember on the shaft of the suspension component; and determining anadjustment to the suspension component based on the location of theindicator member.
 2. The non-transitory computer-readable storage mediumof claim 1, the steps further comprising: receiving a componentidentifier associated with the suspension component; and querying adatabase to retrieve product information about the suspension component.3. The non-transitory computer-readable storage medium of claim 1, thesteps further comprising: displaying, on a display of a device, agraphical overlay associated with the suspension component, wherein thegraphical overlay indicates an alignment and an orientation for a livepicture of the suspension component viewed using an image sensor of thedevice; and capturing the digital image when a user indicates that thelive picture of the suspension component matches the alignment and theorientation indicated by the graphical overlay.
 4. The non-transitorycomputer-readable storage medium of claim 1, wherein the objectrecognition algorithm comprises: dividing the digital image into aplurality of slices, wherein each slice comprises a row of pixels of thedigital image, and each pixel is associated with an intensity value; foreach slice in the plurality of slices: normalizing, in a first pass, theintensity value associated with each pixel in the slice; clipping theintensity value for any pixels having intensity values above a thresholdvalue; and normalizing, in a second pass, the intensity value associatedwith each pixel in the slice; generating a processed image by combiningthe plurality of slices that have been normalized in the first pass,clipped, and normalized in the second pass; filtering the processedimage; performing an edge detection algorithm to find one or moresubstantially vertical lines in the processed image; and selecting thelocation of the median substantially vertical line in the processedimage as the location of the indicator member.
 5. The non-transitorycomputer-readable storage medium of claim 1, wherein the objectrecognition algorithm comprises: for each column of pixels in thedigital image, summing the intensity values for each pixel in the columnto generate a column intensity sum; and selecting the location of thecolumn associated with the minimum column intensity sum as the locationof the indicator member.
 6. A system for adjusting a suspensioncomponent of a vehicle, comprising: an image sensor; a display; a memorystoring an application; and a processor coupled to the memory, the imagesensor, and the display, wherein, when executing the application, theprocessor is configured to: receive a digital image of the suspensioncomponent comprising: a plurality of pixels associated with a shaft ofthe suspension component; and an indicator member positioned to indicatea level of sag of the suspension component under a load; analyze, via anobject recognition algorithm, the digital image to determine a locationof the indicator member on the shaft of the suspension component; anddetermine an adjustment to the suspension component based on thelocation of the indicator member.
 7. The system of claim 6, theprocessor further configured to: receive a component identifierassociated with the suspension component; and query a database toretrieve product information about the suspension component.
 8. Thesystem of claim 6, the processor further configured to: display, on thedisplay, a graphical overlay associated with the suspension component,wherein the graphical overlay indicates an alignment and an orientationfor a live picture of the suspension component viewed using an imagesensor of the device; and capture the digital image when a userindicates that the live picture of the suspension component matches thealignment and the orientation indicated by the graphical overlay.
 9. Thesystem of claim 6, wherein the object recognition algorithm comprises:dividing the digital image into a plurality of slices, wherein eachslice comprises a row of pixels of the digital image, and each pixel isassociated with an intensity value; for each slice in the plurality ofslices: normalizing, in a first pass, the intensity value associatedwith each pixel in the slice, clipping the intensity value for anypixels having intensity values above a threshold value, and normalizing,in a second pass, the intensity value associated with each pixel in theslice; generating a processed image by combining the plurality of slicesthat have been normalized in the first pass, clipped, and normalized inthe second pass; filtering the processed image; performing an edgedetection algorithm to find one or more substantially vertical lines inthe processed image; and selecting the location of the mediansubstantially vertical line in the processed image as the location ofthe indicator member.
 10. The system of claim 9, the processor furtherconfigured to convert the digital image from a color format into agrayscale format.
 11. The system of claim 9, wherein the objectrecognition algorithm comprises: for each column of pixels in thedigital image, summing the intensity values for each pixel in the columnto generate a column intensity sum; and selecting the location of thecolumn associated with the minimum column intensity sum as the locationof the indicator member.
 12. The system of claim 6, wherein the digitalimage is sized based on physical characteristics of the suspensioncomponent.
 13. The system of claim 9, wherein the target pressure isdetermined from a calculation based on product information associatedwith the suspension component.
 14. The system of claim 13, wherein theproduct information comprises at least one of an air spring compressionratio, an air spring piston area, a negative spring length, a negativespring rate, and a top-out spring rate.
 15. The system of claim 9,wherein the processor is further configured to determine a rebounddamping setting of the suspension component.
 16. The system of claim 15,wherein the adjustment is a modified target pressure of the suspensioncomponent calculated based on the loaded position of the suspensioncomponent, and wherein the rebound damping setting is calculated basedon the adjustment to the suspension component.
 17. The system of claim15, wherein the processor is further configured to determine acompression damping setting of the suspension component.
 18. A systemfor adjusting a suspension component of a vehicle, comprising: adisplay; a memory storing an application; and a processor coupled to thememory and the display, wherein, when executing the application, theprocessor is configured to: determine a target pressure for an airspring of the suspension component based on a weight value, measure aloaded position of the suspension component, wherein the loaded positionof the suspension component is measured using an image sensor to capturea digital image of the suspension component in the loaded position; anddetermine an adjustment to the suspension component based on the loadedposition.
 19. The system of claim 18, wherein the digital image isanalyzed using an object recognition algorithm to determine a locationof an indicator member on a shaft of the suspension component.